<?php
require_once(MODULESPATH . "core/b.object.class.php");
require_once(MODULESPATH . "finance/business/b.finance.inc.php");

/**
 * 财经系统业务层投资组合类。
 */
class BCombination extends BObject implements IBCombination{
    /**
     * 证券数据库访问对象。
     */
    private $dao = null;
    
    /*- IBCombination 接口实现 START -*/
    /*- IInjectEnable 接口实现 START -*/
    /**
     * 设置属性值。
     */
    public function __set($prop, $val){
        $this->$prop = $val;
    }
    /*- IInjectEnable 接口实现 END -*/
    
    /**
     * 获取用户默认的投资组合ID。
     * @param Int $uid 用户ID。
     * @return 用户默认的投资组合ID。
     */
    public function getUserDefaultCombinationId($uid){
        $id = $this->dao->getUserDefaultCombinationId($uid);
        if($id < 0){
            $id = $this->dao->createCombination("默认组合", "默认组合", COMBINATION_DEFAULT_WEIGHT, $uid);
        }
        return $id;
    }
    
    /**
     * 向投资组合中添加证券。
     * @param String $symbol 证券代码。
     * @param Int $combinationId 投资组合ID。
     * @param Int $uid 用户ID。
     * @return 是否操作成功。
     */
    public function addStock($symbol, $combinationId, $uid){
        return $this->dao->addStock($symbol, $combinationId, $uid);
    }
    
    /**
     * 获取用户的投资组合列表。
     * @return 用户的投资组合列表。
     * @param Int $uid 用户ID。
     */
    public function getUserCombinations($uid){
        return $this->dao->getUserCombinations($uid);
    }
    
    /*- IAdjustUserData 接口实现 START -*/
    /**
     * 更换数据的用户ID。
     * @param Int $oldId 用户旧ID。
     * @param Int $newId 用户新ID。
     * @return 是否操作成功。
     */
    public function replaceByUid($oldId, $newId){
        return $this->dao->replaceByUid($oldId, $newId);
    }
    
    /**
     * 根据用户ID删除数据。
     * @param Int $uid 用户ID。
     * @return 是否操作成功。
     */
    public function deleteByUid($uid){
        return $this->dao->deleteByUid($uid);
    }
    /*- IAdjustUserData 接口实现 END -*/
    /*- IBCombination 接口实现 END -*/
}
?>
